<?php
/**
 * Created by PhpStorm.
 * Author: 黑瞎子
 * Date: 2018/3/20
 * Time: 14:58
 */

namespace app\api\controller\v1;


use app\api\controller\BaseCotroller;
use app\api\service\WxNotify;
use app\api\validate\IDMustBePostiveInt;
use app\api\service\Pay as PayService;

class Pay extends BaseCotroller
{
    //前置操作-用户权限验证
    protected $beforeActionList = [
        'checkExclusiveScope' => ['only' => 'getPreOrder']
    ];

    //调用我们的支付接口，进行支付，支付前还需再次进行库存量检测
    public function getPreOrder($id = ''){
        (new IDMustBePostiveInt())->goCheck();
        $pay = new PayService($id);
        return $pay->pay();
    }

    //微信支付回调接口
    public function receiveNotify(){
        //微信通知频率为15/15/30/180/1800/1800/1800/1800/3600，单位：秒

        //1.检查库存量，超卖
        //2.更新这个订单的status状态
        //3.减库存
        //如果成功处理，我们返回微信成功处理的信息，否则，我们需要返回没有成功处理。

        //特点: post类型， xml数据类型, 不会携带参数

        //这里不能调用NotifyProcess()，需要调用微信的Handle()
        $notify = new WxNotify();
        $notify->Handle();
    }


    //转发:微信回调接口的断点调试
    //获得微信通知的数据后把数据转发到处理微信支付回调的接口，就可以单步调试了
    /*public function redirectNotify(){
        $xmlData = file_get_contents('php://input');
        $result = curl_post_raw('http:/xia.cn/api/v1/pay/re_notify?XDEBUG_SESSION_START=13322',
            $xmlData);

        // return true;
    }*/
}





